package com.yjzx.util.common.util.BeanUtils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * @author yjzx
 * @date 2024/8/27
 * @description LambdaField
 */
public interface LambdaField extends LambdaSerializable{
    /**
     * 获取列的set方法
     * @return
     */
    Method getColumnSetterMethod();
    /**
     * 获取列的get方法
     * @return
     */
    Method getColumnGetterMethod();

    /**
     * 获取列对象
     * @return
     */
    Field getLambdaColumn();


    default Field getField(Class<?> clazz, String fieldName){
        for (Field field : clazz.getDeclaredFields()) {
            if (field.getName().equalsIgnoreCase(fieldName)) {
                return field;
            }
        }
        if (clazz.getSuperclass() != null) {
            return getField(clazz.getSuperclass(), fieldName);
        }
        return null;
    }
}
